Conversation
There was a problem hiding this comment.
Pull request overview
Adds a canonical glossary entry for “Candidate-count Goodhart” and records the corresponding autonomous-loop tick-history row to provide a durable home + audit trail for the already-named rule.
Changes:
- Add “Candidate-count Goodhart” entry to
docs/GLOSSARY.mdunder “Meta-algorithms and factory-native coinages,” including an authoritative pointer to the memory source. - Append a new tick-history row documenting the durable-home work being landed in this PR.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| docs/GLOSSARY.md | Adds the glossary definition (plain + technical) and points to the authoritative memory file. |
| docs/hygiene-history/loop-tick-history.md | Appends a tick-history row capturing the material state change (glossary entry landed). |
…transport eliminates EOF collision (#726) Second concrete use of the new shard-file transport. Independent file from PR #725's 0230Z shard - no EOF-append collision possible because each shard is a different file. The cascading-conflict failure mode that produced the Liveness- Mechanism Flywheel is now structurally impossible under shard- file transport. Diagnosis-to-fix loop took 6 ticks; validation takes 1. Legacy DIRTY chain (PRs #718-#723) awaits separate resolution; not in scope this tick per restraint discipline. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
…acket) (#738) * research(tick-history-shards): DBSP/Z-set math note (Amara via Aaron 2026-04-29) Amara's substantial math packet anchoring the shard transport landed as a research note under docs/research/. Bounded shape: - Core claim: shard files = write model / event store; tables = read model / projection; DBSP/Z-set = correction algebra - Carrier types + write/read model decomposition - Seven laws to test (commutativity, idempotency, retraction, supersession, projection-rebuild equivalence, write-read separation, chronology) - Retraction model with two implementation options - Anti-hotspot law (formal reason Option B works) - F# implementation sketch for future projector script - §33 archive header with non-fusion disclaimer (this note does NOT claim implementation IS DBSP; it claims the math is isomorphic enough that the laws should hold) Operator-authority criterion applied (4 conditions all hold): prior review converged + failure mode live + action reversible + more review = flywheel turn. Authorized landing. Glossary entry "Git-native CQRS / Event Sourcing" DEFERRED because it depends on PR #723 (Candidate-count Goodhart entry) merging first to avoid overlapping diff regions. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * review-thread fixes on PR #738: schema compliance + filename-convention drift Three threads from Codex P2 + Copilot P1 (2 distinct findings): 1. **Filename convention drift** (lines 56 + 188): the research note recommended `HHMMSSZ-<short-content-hash>.md` but the currently landed convention is `HHMMZ.md`. Reframed as "future-migration recommended path (NOT the current landed convention)" with explicit pointer to the README's actual current convention. Math below uses content-hash form because it makes idempotency law cleanest to state, but operational form is HHMMZ.md. 2. **Shard schema mismatch** (line 1 of 0335Z.md): the row started with parenthetical narrative inside the timestamp cell, which doesn't match the README's strict 6-column schema (`| <ISO 8601 timestamp> | <model id> | <cron> | <body> | <PR ref> | <observation> |`). Fixed: timestamp cell now contains only the ISO 8601 timestamp; narrative moved to the body cell. Aaron's diagnostic catch was load-bearing: BLOCKED was caused by unresolved threads (= conversation-resolution requirement in branch protection), NOT Aaron-side approval. I had misdiagnosed `reviewDecision=NONE` as "human review required"; the actual blocker was these 4 unresolved threads. Stopped making new shard PRs while diagnosing. The pithy diagnosis (Amara): "BLOCKED is a state, not a cause." Resolved into actual causes; fixing now. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Cherry-picks the substantive GLOSSARY.md content from the prior-round PR #723 commit. The monolith loop-tick-history.md addition from the original commit is dropped — shard transport is now canonical for tick-history per task #276 (Option B); legacy monolith additions are stale-format under the new shape. Lands the canonical glossary entry for Candidate-count Goodhart in the "Meta-algorithms and factory-native coinages" section. Already- named rule from memory/feedback_candidate_count_goodhart_*.md; durable-home work for a rule that was named but not yet glossary- indexed. Composes with PR #707 (minimal Aurora bridge) where Candidate-count Goodhart is Translation 1 of the three immune translations. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
6343a1b to
496ab1d
Compare
… Goodhart entry The hyphenated term 'rule-definition' was split across a soft-wrap boundary (line 865-866) producing 'rule- definition' (with space) when rendered. Move the wrap to before the parenthesis so 'rule-definition' stays on one line. Addresses Copilot review thread on PR #723.
| surface). Authoritative source: | ||
| `memory/feedback_candidate_count_goodhart_raw_hits_are_not_violations_aaron_amara_2026_04_28.md`. |
There was a problem hiding this comment.
docs/GLOSSARY.md is a current-state surface that should avoid personal-name attribution/mentions (per .github/copilot-instructions.md:305-346). This entry’s “Authoritative source” path includes personal names in the filename (..._aaron_amara_...). Consider adding a name-free alias/redirect memory file (or another name-free canonical pointer) and citing that path here instead.
| surface). Authoritative source: | |
| `memory/feedback_candidate_count_goodhart_raw_hits_are_not_violations_aaron_amara_2026_04_28.md`. | |
| surface). Authoritative source: the 2026-04-28 memory entry | |
| on candidate-count Goodhart classification. |
| Classify context to decide work."* Fifth member of the | ||
| Goodhart catch family in this factory (Catches #1-4 are | ||
| substrate-IS-amortized-precision, commit-count vs tree-numstat, | ||
| sample-classification ≠ clearance, tree-diff vs content-loss | ||
| surface). Authoritative source: |
There was a problem hiding this comment.
This entry introduces “Goodhart catch family” and references Catches #1–4, but the shorthand labels used here don’t appear elsewhere in the glossary and aren’t linked to their authoritative sources. To keep the glossary navigable, consider either (a) adding explicit pointers for catches #1–4 (memory files or glossary anchors) or (b) removing the numbered list and keeping the Candidate-count Goodhart rule self-contained.
| Classify context to decide work."* Fifth member of the | |
| Goodhart catch family in this factory (Catches #1-4 are | |
| substrate-IS-amortized-precision, commit-count vs tree-numstat, | |
| sample-classification ≠ clearance, tree-diff vs content-loss | |
| surface). Authoritative source: | |
| Classify context to decide work."* Part of the factory's | |
| broader Goodhart-pattern guidance: optimizing for the raw hit | |
| count is a measurement trap unless context classification | |
| decides whether any rewrite is actually required. Authoritative | |
| source: |
| located 12 candidates; only context classification | ||
| (rule-definition / sample / live-code / disclosure / etc.) | ||
| determines |
There was a problem hiding this comment.
The hard-wrapped paragraph leaves “determines” on its own line, which reads like an accidental wrap and makes the entry harder to scan. Reflow this sentence so the line breaks don’t strand a single word.
| located 12 candidates; only context classification | |
| (rule-definition / sample / live-code / disclosure / etc.) | |
| determines | |
| located 12 candidates; only context classification determines |
Summary
memory/feedback_candidate_count_goodhart_*.md; this PR places the pointer-plus-gist where future contributors lookWhy this PR is batched (glossary + tick row in one)
Per Amara's just-arrived "do not let the fix for the flywheel become another turn of the flywheel" rule, this PR batches the glossary entry + tick-history row into one PR (cuts friction in half vs separate PRs).
Test plan